package com.tcc.fastline.Domain;

import android.util.Log;

import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;

public class Estabelecimento extends UsuarioSistema {

	@SerializedName("endereco")
	private Endereco Endereco;
	
	public Estabelecimento() {
		super(TipoUsuario.Estabelecimento);
		this.setEndereco(new Endereco());
	}

	public Estabelecimento(String json) {
		super(TipoUsuario.Estabelecimento);

		try {
			Gson gson = new Gson();
			Estabelecimento esta = gson.fromJson(json, Estabelecimento.class);

			this.setCodigo(esta.getCodigo());
			this.setEmail(esta.getEmail());
			this.setEndereco(esta.getEndereco());
			this.setNome(esta.getNome());
			this.setSenha(esta.getSenha());
			this.setContatoTelefonico(esta.getContatoTelefonico());

		} catch (Exception e) {
			throw new RuntimeException(
					"Erro ao gerar estabelecimento recebido do webservice, motivo: "
							+ e.getMessage());
		}
	}

	@Override
	public String toString() {

		String json = "";

		try {
			Gson gson = new Gson();
			
			json = gson.toJson(this);
			
		} catch (Exception e) {
			throw new RuntimeException(
					"Erro ao gerar estabelecimento para envio ao webservice, motivo: "
							+ e.getMessage());
		}

		return json;

	}
	
	public boolean isValid() {
		Log.e("Estabelecimento", toString());
		
		return (this != null
				&& super.isValid()
				&& (this.getEndereco().isValid()));
	}

	public Endereco getEndereco() {
		return this.Endereco;
	}

	public void setEndereco(Endereco endereco) {
		this.Endereco = endereco;
	}

}
